package com.example.annotation.annotation;

import com.example.annotation.enums.OpType;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author: v_jxchi
 * @date: 2020/11/27 18:12
 * @description: Operate Log 的自定义注解
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface OpLog {

    /**
     * 业务类型，如新增、删除、修改
     * @return
     */
    OpType opType();

    /**
     * 业务对象名称，如订单、库存、价格
     * @return
     */
    String opItem();

    /**
     * 业务对象编号表达式，描述了如何获取订单号的表达式
     * @return
     */
    String opItemIdExpression();
}
